home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / utilprn / hpdeskje.sit / HPDJet ƒ / dialog_item_handling.c < prev    next >
Text File  |  1989-04-02  |  5KB  |  227 lines

  1. /* 02.04.1989  amn  (latest edit) */
  2.  
  3. /* dialog_item_handling.c  -  printer driver for Macintosh and HP DeskJet, dialog subroutines. */
  4.  
  5. /* Authors:  Ari Mujunen (amn@hutcs.hut.fi) and Olli Arnberg (oar@hutcs.hut.fi). */
  6. /* Copyright Ari Mujunen, Olli Arnberg 1989. */
  7. /* You may redistribute the driver (=printer resource file, source files, */
  8. /* documentation file(s), and the file 'Copyright and Source Offer') */
  9. /* only _non-commercially_ and _in its entirety_. */
  10. /* See the file 'Copyright and Source Offer' and/or documentation for details. */
  11. /* Acknowledgements:  Special thanks to Mr. Earle R. Horton for his 'Daisy' */
  12. /* daisywheel printer driver and its source code published in 'MacTutor', Nov-Dec 1987. */
  13. /* This driver served as a basis and inspiration for our work.  It also */
  14. /* proofed that a Macintosh printer driver can be done despite the lack of */
  15. /* documentation from Apple. */
  16.  
  17. /* Change history: */
  18. /* Version  When        Who      Why */
  19. /* 2.1      02.04.1989  amn,oar  Released version. */
  20.  
  21.  
  22. void
  23. pushRadioButton(theDialog, itemHit, first, last)
  24. DIALOG_PTR_TYPE_TODAY    theDialog;
  25. int itemHit;
  26. int first;
  27. int last;
  28. {
  29.     int    itemtype, i;
  30.     Handle    itemhandle;
  31.     Rect    itemrect;
  32.     
  33.     if (first <= 0)
  34.         return;
  35.     for (i=first-1; last-i++;) {
  36.         GetDItem(theDialog, i, &itemtype, &itemhandle, &itemrect);
  37.         if (itemtype == (ctrlItem + radCtrl))
  38.             if (i==itemHit)
  39.                 SetCtlValue(itemhandle, 1);
  40.             else
  41.                 SetCtlValue(itemhandle, 0);
  42.     }
  43. }  /* pushRadioButton */
  44.  
  45. int
  46. whichRadioButton(theDialog, first, last)
  47. DIALOG_PTR_TYPE_TODAY theDialog;
  48. int first;
  49. int last;
  50. {
  51.     int    itemtype, i;
  52.     Handle    itemhandle;
  53.     Rect    itemrect;
  54.     
  55.     if (first <= 0)
  56.         return(-1);
  57.     for (i=first-1; last-i++;) {
  58.         GetDItem(theDialog, i, &itemtype, &itemhandle, &itemrect);
  59.         if (itemtype == (ctrlItem + radCtrl))
  60.             if (GetCtlValue(itemhandle) == 1)
  61.                 return(i-first);
  62.     }
  63.     return(-1);
  64. }  /* whichRadioButton */
  65.  
  66.  
  67. Boolean
  68. pushCheckBox(theDialog, itemHit)
  69. DIALOG_PTR_TYPE_TODAY    theDialog;
  70. int itemHit;
  71. {
  72.     int    itemtype, i;
  73.     Handle    itemhandle;
  74.     Rect    itemrect;
  75.     
  76.     if (itemHit <= 0)
  77.         return(FALSE);
  78.     GetDItem(theDialog, itemHit, &itemtype, &itemhandle, &itemrect);
  79.     if (itemtype == (ctrlItem + chkCtrl)) {
  80.         i = GetCtlValue(itemhandle);
  81.         SetCtlValue(itemhandle, (i = ((i!=0)?0:1)) );
  82.         return(i);
  83.     }
  84.     return(FALSE);
  85. }  /* pushCheckBox */
  86.  
  87.  
  88. void
  89. deActivateControls(theDialog, first, last)
  90. DIALOG_PTR_TYPE_TODAY    theDialog;
  91. int first;
  92. int last;
  93. {
  94.     int    itemtype, i;
  95.     Handle    itemhandle;
  96.     Rect    itemrect;
  97.     
  98.     if (first <= 0)
  99.         return;
  100.     for (i=first-1; last-i++;) {
  101.         GetDItem(theDialog, i, &itemtype, &itemhandle, &itemrect);
  102.         if ((itemtype >= ctrlItem) && (itemtype <= (ctrlItem + resCtrl)))
  103.             HiliteControl(itemhandle, 255);
  104.     }
  105. }  /* deActivateControls */
  106.  
  107.  
  108. void
  109. activateControls(theDialog, first, last)
  110. DIALOG_PTR_TYPE_TODAY    theDialog;
  111. int first;
  112. int last;
  113. {
  114.     int    itemtype, i;
  115.     Handle    itemhandle;
  116.     Rect    itemrect;
  117.     
  118.     if (first <= 0)
  119.         return;
  120.     for (i=first-1; last-i++;) {
  121.         GetDItem(theDialog, i, &itemtype, &itemhandle, &itemrect);
  122.         if ((itemtype >= ctrlItem) && (itemtype <= (ctrlItem + resCtrl)))
  123.             HiliteControl(itemhandle, 0);
  124.     }
  125. }  /* activateControls */
  126.  
  127.  
  128. void
  129. forceValueToControls(theDialog, theValue, first, last)
  130. DIALOG_PTR_TYPE_TODAY    theDialog;
  131. int theValue;
  132. int first;
  133. int last;
  134. {
  135.     int    itemtype, i;
  136.     Handle    itemhandle;
  137.     Rect    itemrect;
  138.     
  139.     if (first <= 0)
  140.         return;
  141.     for (i=first-1; last-i++;) {
  142.         GetDItem(theDialog, i, &itemtype, &itemhandle, &itemrect);
  143.         if ((itemtype >= ctrlItem) && (itemtype <= (ctrlItem + resCtrl)))
  144.             SetCtlValue(itemhandle, theValue);
  145.     }
  146. }  /* forceValueToControls */
  147.  
  148.  
  149. Boolean
  150. controlIsOn(theDialog, itemHit)
  151. DIALOG_PTR_TYPE_TODAY theDialog;
  152. int itemHit;
  153. {
  154.     int    itemtype, i;
  155.     Handle    itemhandle;
  156.     Rect    itemrect;
  157.     
  158.     if (itemHit <= 0)
  159.         return(FALSE);
  160.     GetDItem(theDialog, itemHit, &itemtype, &itemhandle, &itemrect);
  161.     if ((itemtype >= ctrlItem) && (itemtype <= (ctrlItem + resCtrl)))
  162.         return(GetCtlValue(itemhandle) != 0);
  163.     return(FALSE);
  164. }  /* controlIsOn */
  165.  
  166.  
  167. void
  168. frameButton(theDialog, theButton)
  169. DIALOG_PTR_TYPE_TODAY theDialog;
  170. int theButton;
  171. {
  172.     int            itemtype;
  173.     Handle        itemhandle;
  174.     Rect        itemrect;
  175.     
  176.     GetDItem(theDialog, theButton, &itemtype, &itemhandle, &itemrect);
  177.     PenSize(3, 3);
  178.     InsetRect(&itemrect, -4, -4);
  179.     FrameRoundRect(&itemrect, 16, 16);
  180. }
  181.  
  182.  
  183. void
  184. setStringItemToInt(theDialog, theItem, theInt)
  185. DIALOG_PTR_TYPE_TODAY theDialog;
  186. int theItem;
  187. int theInt;
  188. {
  189.     int        itemtype;
  190.     Handle    itemhandle;
  191.     Rect    itemrect;
  192.     Str255    numAsString;
  193.     
  194.     if (theItem <= 0)
  195.         return;
  196.     NumToString((long)theInt, numAsString);
  197.     GetDItem(theDialog, theItem, &itemtype, &itemhandle, &itemrect);
  198.     itemtype &= ~itemDisable;  /* regardless of whether item is disabled or not */
  199.     if ((itemtype == statText) || (itemtype == editText))
  200.         SetIText(itemhandle, numAsString);
  201. }  /* setStringItemToInt */
  202.  
  203.  
  204. int
  205. getStringItemAsInt(theDialog, theItem)
  206. DIALOG_PTR_TYPE_TODAY theDialog;
  207. int theItem;
  208. {
  209.     int        itemtype;
  210.     Handle    itemhandle;
  211.     Rect    itemrect;
  212.     Str255    numAsString;
  213.     long    theLong;
  214.     
  215.     if (theItem <= 0)
  216.         return(0);
  217.     
  218.     GetDItem(theDialog, theItem, &itemtype, &itemhandle, &itemrect);
  219.     itemtype &= ~itemDisable;  /* regardless of whether item is disabled or not */
  220.     if ((itemtype == statText) || (itemtype == editText)) {
  221.         GetIText(itemhandle, &numAsString);
  222.         StringToNum(numAsString, &theLong);
  223.         return((int)theLong);
  224.     }
  225.     return(0);
  226. }  /* getStringItemAsInt */
  227.